js:
d = [];
eval(JSON.parse(request("hiker://page/js")).rule);
//eval(request("https://gitee.com/giteehyj/share/raw/master/hiker/source/%E8%AE%B0%E8%B4%A6%E6%9C%AC/js.js"));

// 显示更新时间
now_time = new Date().getTime();
if(!fileExist("last_update.time")) {
	saveFile("last_update.time", String(now_time - 365*24*60*60*1000));
}
last_update_time = Number(readFile("last_update.time"));
d.push({
	title: '““””<font color="#A9A9A9"><small>上次更新时间：' + formatDate(last_update_time) + '</small></font>',
	url: 'toast://这是上次更新时间',
	col_type: "text_center_1",
	extra: {lineVisible: false}
});

// 显示折叠展开按钮
// ShowUnfoldCollapse();

// 显示fyclass按钮
class_list_dis = ["所有消费", "收入支出", "现有余额", "更新数据"];
class_list_url = ["alldata", "inout", "balance", "update"];
ShowCategory(class_list_dis, "class_set");

// log("class_set：" + getMyVar("class_set"));
// log("Unfold_and_Collapse_Ind：" + getMyVar("Unfold_and_Collapse_Ind"));


fyclass = class_list_url[Number(getMyVar("class_set"))];
log(fyclass);


// 更新并存储数据
update_data = function(time) {
	fyclass_all = ["balance", "alldata", "inout"];
	for(i=0; i<fyclass_all.length; i++) {
		fyclass0 = fyclass_all[i];
		data = request("https://gitee.com/giteehyj/share/raw/master/hiker/source/%E8%AE%B0%E8%B4%A6%E6%9C%AC/data/" + fyclass0  + ".csv");
		saveFile(fyclass0  + ".data", data);
		saveFile("last_update.time", String(now_time));
	}
}
if(fyclass == "update" || now_time - last_update_time > 24*60*60*1000 || (fyclass != "update" && !fileExist(fyclass  + ".data"))) {
	showLoading("更新数据中，请稍等 ...")
	update_data(now_time);
	hideLoading();
	if(fyclass == "update") {
		d.push({
			title: '““””<h2><font color="#FF1493"><b>' + "数据更新完成，去查看相关数据吧！" + '</b></font></h2>',
			url: 'toast://数据更新完成，去查看相关数据吧！',
			col_type: "text_center_1",
		});
	}
}

// 实际显示
data = readFile(fyclass  + ".data");
if(fyclass=="alldata" || fyclass=="inout" ) {
	json = data2json(data); 
	json = sort_by_time(json);
	obj = GetCategoryList(json);
	ShowCategory(obj["年份"], "year_set");
	ShowCategory(obj["月份"], "month_set");
	ShowCategory(obj["标签"], "label_set");
	json = GetCategoryData(json);
	ShowMainData(json);
	// d.push.apply(d,d_main_data);
}
else if(fyclass=="balance") {
	json = data2json(data);	 
	ShowBalanceData(json); 
}

setResult(d);